/*
 * @Author: ZhanXie
 * @Date: 2020-01-06 09:27:17
 * @LastEditors  : ZhanXie
 * @LastEditTime : 2020-01-06 12:05:37
 * @Description: 
 * @FilePath: /projectStudy/jumpGame/src/game/view.js
 */
import GamePage from '../pages/game-page'
import GameOverPage from '../pages/game-over-page'

class GameView {
  constructor() {

  }

  /**
   * 显示游戏结束页面
   */
  showGameOverPage() {
    this.gamePage.hide()
    this.gameOverPage.show()
  }

  /**
   * 隐藏结束页面 显示游戏页面
   */
  showGamePage() {
    this.gameOverPage.hide()
    this.gamePage.restartGame()
    this.gamePage.show()
  }

  /**
   * 重启游戏
   */
  restartGame() {
    this.gamePage.restartGame()
  }

  /**
   * 初始化游戏结束页面
   * 并且赋予传输部分函数与游戏结束页面
   * @param {Object} callbacks 由上游赋予下游 游戏结束页面的一些函数能力 
   */
  initGameOverPage(callbacks) {
    this.gameOverPage = new GameOverPage(callbacks)
    this.gameOverPage.init({
      scene: this.gamePage.scene
    })
  }

  /**
   * 初始化游戏页面
   * 并且赋予传输部分函数与游戏页面
   * @param {Object} callbacks 由上游赋予下游 游戏页面的一些函数能力 
   */
  initGamePage(callbacks) {
    this.gamePage = new GamePage(callbacks)
    this.gamePage.init()
  }
}

export default new GameView()